package com.yangxk.kadmin.web.module.system.mapper;

import com.yangxk.kadmin.common.base.BaseMapper;
import com.yangxk.kadmin.web.module.system.form.RoleQueryForm;
import com.yangxk.kadmin.web.module.system.po.Role;
import com.yangxk.kadmin.web.module.system.po.RoleAuth;
import com.yangxk.kadmin.web.module.system.po.UserRole;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface RoleMapper extends BaseMapper<Role, Long>{

    List<Role> selectList(RoleQueryForm query);

    int deleteBatch(List<Long> ids);


    /**=====================对角色权限的操作===============================*/
    /**
     * 删除指定角色的权限
     * create by yangxk 2018/10/14 14:23
     */
    int deleteAuth(long roleId);

    /**
     * 为指定角色插入权限
     * create by yangxk 2018/10/14 14:24
     */
    int insertAuth(@Param("list")List<RoleAuth> raList);

    /**
     * 查询角色权限ID集合
     * create by yangxk 2018/10/14 15:15
     */
    List<Long> findRoleAuth(long roleId);



    /**
     * 查询角色的用户ID集合
     * create by yangxk on 2018/10/16 16:33
     */
    List<Long> findRoleUser(long roleId);

    /**
     * 根据用户ID删除该用户分配的角色
     * create by yangxk 2018/10/23 19:44
     */
    int deleteRoleByUser(Long userId);

    /**
     * 查询用户所属角色的部门ID
     * create by yangxk on 2019/2/2 11:28
     */
    String findUserRoleDept(long userId);

    /**
     * 查询用户的角色ID
     * create by yangxk on 2019/3/4 13:26
     */
    List<Long> findUserRole(long userId);

    /**
     * 为用户添加角色
     * create by yangxk on 2019/3/4 13:36
     */
    int insertUserRole(List<UserRole> list);
}